package com.xbongbong.paas.enums.bi;

import com.xbongbong.saas.constant.BasicConstant;
import lombok.Getter;

import java.util.Objects;

/**
 * 图表中心数据来源常量枚举，不需要国际化
 */
@Getter
public enum ChartSourceEnum {
    /**
     *
     */
    MUTI_TABLE(0,"多表"),
    ONE_TABLE(1,"单表"),
    DATESET(2,"数据集"),
    ;
    
    private Integer code;
    private String name;
    ChartSourceEnum(Integer code, String name) {
        this.code = code;
        this.name = name;
    }

    /**
     * 判断数据源是否为数据集类型
     *
     * @param code  同枚举code保持一致
     * @return boolean
     * @author zyy
     * @date 2022/10/8
     * @version v1.0
     */
    public static boolean isDataSet(Integer code){
        //有部分业务场景前后端使用3标识数据集
        return Objects.equals(DATESET.code,code) || Objects.equals(BasicConstant.THREE,code);
    }

    /**
     * 判断图表的数据源类型
     *
     * 判断是否为数据集用single
     * 判断单表、多表用muti
     *
     * @param single 0-多表 、 1-单表、 2-数据集
     * @param muti 0-多表 、 1-单表
     * @return com.xbongbong.paas.enums.bi.ChartSourceEnum
     * @author zyy
     * @date 2022/12/1
     * @version v1.0
     */
    public static ChartSourceEnum getChartSource(Integer single,Integer muti){
        if(isDataSet(single)){
            return DATESET;
        }
        return Objects.equals(muti, BasicConstant.ZERO) ?  MUTI_TABLE : ONE_TABLE;
    }
}
